home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-01-30 | 44.7 KB | 1,089 lines |
-
-
- `BGUI' release 1.1b
- *******************
-
- Preface
- *******
-
- `BGUI' release 1.1b
- (C) Copyright 1993-1994 Jaba Development
- (C) Copyright 1993-1994 Jan van den Baard
- Written using DICE v3.0 by
-
- SNail: Jan van den Baard
- Bakkerstraat 176
- 3082 HE Rotterdam
- Holland
-
- Fido: 2:286/407.53 (Jan van.den.Baard)
- EMail: jaba@grafix.wlink.nl
-
- EMail is preferred.
- If you must use snail mail then please make it clear
- when you absolutely need an anwser and (don't forget
- this) include enough return postage.
-
- User Manual
- (C)Copyright 1993-1994 Jaba Development
- __ __
- / / / \
- __ / / / /\ \
- _____\ \__/ /_/ /_/ /_____
- (__________________________)
-
- `BGUI', (C) Copyright 1993-1994 Jaba Development. All rights reserved. This
- program is GiftWare. This means that if you want to use the programs you are
- morally obligated to reward the author with a gift that, you think, matches
- his efforts. If you cannot think of a gift (come on! be creative ;), a small
- financial donation will always be gladly accepted.
-
- I have thought about how to release this package for quite some time. My
- initial thought went out to shareware but I soon forgot about this. Since most
- of the libraries of this kind seem to be shareware I do not think that many
- people like this simply because it's anoying to have to pay for a library if
- you had to pay for the application as wel.
-
- To avoid these problems I have decided to release this package as giftware
- for people writing freely distributable software. With "freely distributable
- software" I mean non-crippeled, free of charge software. Authors who wish to
- use `BGUI' in shareware and/or commercial programs must pay for the usage of
- `BGUI' before actually using it.
-
- ShareWare and/or commercial usage is `not' allowed without:
-
- 1) Prior written permission from the author.
- 2) A small finacial donation of US$ 20,-, DM 30,- or HFL 30,-.
- 3) A free and registered copy of the product including free updates that
- still make use of the library.
-
- The idea behind this distribution policy is simple. You make money with the
- aid of `BGUI'? I want to get my (very humble) share.
-
- This software is not crippeled so when you register it you will not recieve
- a key-file or an updated version. Registering simply buys you the right to use
- this software in shareware and/or commercial applications.
-
- Resonable, eh?
-
- Introduction
- ************
-
- `BGUI' is a BOOPSI based shared library contaning a number of BOOPSI
- classes. It allows for easy creation and managing of font sensitive and size
- adjustable GUI's on the Amiga. Hmm, where have I read something like this
- before..., I hear you say.
-
- YES! This is yet another GUI library. I know there has been a lot of
- discussions about the usabillity and neccesity of GUI libraries on the nets
- lately. Still, being the ignorant bugger that I am, at some point I felt it
- was necessary to write yet another one.
-
- Believe me when I say that `BGUI' was not intended to become a releasable
- project. I started coding `BGUI' simply because I was amazed what MUI did
- using BOOPSI. Therefore I started coding some BOOPSI classes as a learning
- experience.
-
- Hmmm... This is beginning to sound like an excuse... As if I did something
- terrible ;)
-
- The point is that, while working on BGUI, I saw many GUI libraries being
- released and not one of them really seemed to take off. This made me think
- that all this talk about "For every app I run I need to install a different
- GUI library" really is bull. Please correct me if I'm wrong but I have yet to
- see a program requiring a GUI library (with the exception of MUI ofcourse).
-
- Sure there are a lot available but MUI is the only one which actually seems
- to be used by the programmers.
-
- This is the reason for `BGUI'. I have tryed to create a library which does
- it's thing simular to MUI eliminating the biggest problems that programmers
- seem to have with MUI. Meaning no fancy
- background-pen-frame-text-image-whatever settings editor, not a zillion extra
- images, no external class libraries etc.
-
- `BGUI' is a single library which can be removed as easely as it can be
- installed. It provides an easy way to create and control GUI's without becoming
- excessive in what it does.
-
- I guess time will tell if `BGUI' is going to be accepted or not...
-
- Features
- ********
-
- * Requires at least OS 2.04 (Yes, that is a feature :)
-
- * Extends on the existing system gadgetclass and rootclass.
-
- * Creates completely font sensitive GUI's.
-
- * Supports sizable windows.
-
- * AppWindow support.
-
- * Titled group-frames and seperators.
-
- * Supports OS 3.0 when available.
-
- * Style Guide compliant.
-
- * Keyboard control of most gadget classes.
-
- * Several types of notification to create "self driven" GUI's.
-
- * Easy intergration of third-party classes.
-
- * Easy to make your class work directly with BGUI.
-
- * Object oriented.
-
- * Resonable speed, even with a 68000 processor.
-
- * Relatively small library.
-
- * Classes for easy filerequester and commodity creation.
-
- * Seperate ARexx class including source code.
-
- Requirements
- ************
-
- `BGUI' requires at least version 2.04 of the operating system. It does `not'
- run on 1.3 systems. Are there still people running 1.3?
-
- `BGUI' also requires the following disk-based libraries to operate:
-
- * gadtools.library (V37) (menus)
-
- * asl.library (V37) (filereq class)
-
- * commodities.library (V37) (commodities class)
-
- The following libraries are not required but they will impose on the
- functionality of the library when not available:
-
- * locale.library (V38) (localized library strings)
-
- * amigaguide.library (V37) (On-line help)
-
- * workbench.library (V37) (App-window support)
-
- It should not be a problem to use BGUI on a system with 512KByte but a
- minimum of 1 Megabyte is suggested as a minimum.
-
- Installation
- ************
-
- The installation of BGUI is very simple. You can either use the Installer
- utility by C= which will install the library for you or you can copy the
- `bgui.library' to your LIBS: directory or into a directory you might have
- setup for non-system libraries.
-
- Where you put the headers/modules for the language you use is up to you.
- Since the different compilers and users use different directory structures I
- did not supply a script for you to install these. You'll have to do this by
- hand.
-
- Read Me
- *******
-
- * The bgui.library is a special library in the sence that it is a single
- task library. This means that `every' task using the library must open
- the library for itself. The library base pointer may `not' be shared
- between different tasks.
-
- The reason for this is that the library tracks information like window
- bounds etc. This tracking is done for each individual task.
-
- So if your code spawns a sub-task which needs the library, the sub-task
- code must open the library for itself. It may not share it with the main
- task.
-
- * The object ID's (gadgets and menus) are restricted to the range 1..65535.
- ID's smaller or larger than this are not allowed. This should not be a
- problem :)
-
- * When designing custom classes to work with BGUI please try to keep your
- tag values and method ID's well out of the range of the BGUI tag values
- and method ID's. Using values that conflict with the BGUI values may have
- unexpected results.
-
- * Do not be alarmed when you notice disk-activity when a BGUI requester
- pops up. This is due to the fact that the bgui.library catalog file is
- re-loaded each time BGUI needs it. This makes sure that the language is
- correct if it changed.
-
- * When scrolling a large listview the mouse pointer may move in steps
- rather than smoothly. This is not abnormal behaviour with BOOPSI objects
- because all rendering occures on the input device it's task. Just scroll
- a MultiView window with the scroller and you'll see the same effect.
-
- Keyboard & Mouse
- ****************
-
- Most of the BGUI gadget objects can be controlled by the keyboard. Usually
- the key that is used to control an object is shown by an underlined character
- in the object it's label. The objects can be controlled as follows:
-
- * `Button' - Pressing the key will make the object appear pressed. If you
- release the key the object appears normal again and the application is
- signalled that the object was selected. When you accidentally activated
- the button you can press SHIFT or ESC before releasing the key to cancel
- the selection.
-
- * `Toggle Button' - Pressing the key will toggle the selected state of the
- toggle button.
-
- * `CheckBox' - Pressing the key will toggle the selected state of the
- checkbox object.
-
- * `Prop (Scroller)' - Pressing the key will advance the knob position by
- one page. When you press the key together with SHIFT the knob will backup
- one page. You can reset the knob position when you are dragging the knob
- with the mouse by clicking on the right mouse button.
-
- * `Listview' - Pressing the key will select the next entry in the list
- scrolling the entries when necessary. Pressing the key together with
- SHIFT will select the previous entry. Read only listview objects will
- simply scroll the list forward and backward.
-
- * `Cycle' - Pressing the key will cycle one choise forward. Pressing the
- key together with SHIFT will cycle one choise backward. Selecting the
- gadget with the mouse while holding down the SHIFT key will also make the
- gadget cycle backward. When the cycle gadget was setup to be a popup
- gadget by the application programmer you can click inside the label area
- to pop-up a menu from which you can select the desired item. You can
- recognize a popup gadget by the imagery left of the label area. Normal
- cycle gadgets have a circular arrow here and popup gadgets have a small
- menu here.
-
- * `Slider' - Pressing the key will advance the knob position by one.
- Pressing the key together with shift will decrease the knob position by
- one. You can reset the knob position when you are dragging the knob with
- the mouse by clicking to on the right mouse button.
-
- * `String,Integer' - Pressing the key will simply activate the gadget.
-
- * `Mx' - Pressing the key will select the next button skipping any disabled
- buttons. Pressing the key together with shift will select the previous
- button skipping any disabled buttons. If the Mx object is in tabs mode
- the choises will not stop at the last or first selection but instead it
- will cycle back to the start or the end.
-
- As you can see this behaviour is mostly style guide compliant with some
- additional possibilities.
-
- Disclaimer
- **********
-
- THERE IS NO WARRANTY FOR THE PROGRAMS, TO THE EXTENT PERMITTED BY
- APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS
- AND/OR OTHER PARTIES PROVIDE THE PROGRAMS "AS IS" WITHOUT WARRANTY OF ANY
- KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
- ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAMS IS WITH YOU.
- SHOULD THE PROGRAMS PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
- SERVICING, REPAIR OR CORRECTION.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
- ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY REDISTRIBUTE THE PROGRAMS AS
- PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
- INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE
- THE PROGRAMS (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED
- INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
- PROGRAMS TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER
- PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
- License
- *******
-
- This license applies to the product called `BGUI', a program for the Amiga
- computer, published by Jan van den Baard under the concepts of GiftWare, and
- the accompanying documentation, example files and anything else that comes
- with the original distribution. The term "Program" below, refer to this
- product. The term "Author" below, refers to "Jan van den Baard". The license
- is addresses as "you".
-
- * You may copy and distribute verbatim copies of the program's executable
- code and documentation as you receive it, in any medium, provided that
- you conspicuously and appropriately publish only the original, unmodified
- program, with all copyright notices and disclaimers of warranty intact
- and including all the accompanying documentation, example files and
- anything else that came with the original.
-
- * You may not copy and/or distribute this program without the accompanying
- documentation and other additional files that came with the original. You
- may not copy and/or distribute modified versions of this program.
-
- * You may not copy, modify, sublicense, distribute or transfer the program
- except as expressly provided under this license. Any attempt otherwise
- to copy, modify, sublicense, distribute or transfer the program is void,
- and will automatically terminate your rights to use the program under
- this license. However, parties who have received copies, or rights to
- use copies, from you under this license will not have their licenses
- terminated so long as such parties remain in full compliance.
-
- * By copying, distributing and/or using the program you indicate your
- acceptance of this license to do so, and all its terms and conditions.
-
- * Each time you redistribute the program, the recipient automatically
- receives a license from the original licensor to copy, distribute and/or
- use the program subject to these terms and conditions. You may not
- impose any further restrictions on the recipients' exercise of the rights
- granted herein.
-
- * You may not disassemble, decompile, re-source or otherwise reverse
- engineer the program.
-
- * You are free to use the programs. If, after an evaluation period of up to
- 30 days, you find the programs useful enough to continue using them you
- are morally, not lawfully, obligated to send the author a gift that, you
- think, matches his efforts. Shareware or commercial usage of the programs
- require registering. Please refer to the *note Preface::. section for
- more information on registering.
-
- * If you wish to incorporate parts of the programs into other programs,
- write to the author to ask for permission. If you want to release your
- programs as being Public Domain, FreeWare or GiftWare you are allowed to
- include a copy of the "bgui.library" without the accompaning
- documentation and files. ShareWare and Commercial distribution of the
- programs is not allowed without prior written permission. Please refer to
- the *note Preface::. section for more information on registering.
-
- * You agree to cease distributing the program and data involved if
- requested to do so by the author.
-
- * You may charge a fee to recover distribution costs. The fee for diskette
- distribution may not be more than the cost to obtain a public domain
- diskette from Fred Fish.
-
- History
- *******
-
- V37.11
- ======
-
- * Started written history...
-
- * Added the PROGRESS_Divisor tag for those extremely large values.
-
- * BUG FIX: The progress class object could fill the gauge 1 pixel to far in
- some cases. Added some extra code to prevent this from happening.
-
- * Added the external class. This class makes it easy to include third party
- classes like the colorwheel.gadget in a BGUI user interface. Still have
- major problems handling notification though...
-
- * Added the WM_ADDUPDATE method to the window class. This method makes it
- possible to connect an external class object to another object to perform
- simple icclass style notification.
-
- V37.12
- ======
-
- * BUG FIX: The layout engine sometimes layouted an object one or two
- pixels to small. Added some extra code to prevent this from happening.
-
- * Added the LGO_Align attribute to enhance the layout procedure.
-
- * BUG FIX: The stringclass screwed up in computing it's minimum size when
- it did not have a frame attached to it.
-
- * BUG FIX: The layout engine sometimes GURU'd. Ooops. Should be fixed now.
-
- * BUG FIX: The LISTV_RenderHook did not setup the entry correctly in the
- lvRender structure.
-
- * Added the LVM_REMENTRY method which can be used to remove single entries
- from a listview.
-
- * Added the LVM_REFRESH method to refresh the listview object after
- adding/removing some entries.
-
- * BUG FIX: The infoclass computed the maximum width of the formatted text
- one pixel to small.
-
- V37.13
- ======
-
- * BUG FIX: The window class did not succeed in opening a screen size window
- when the screen was smaller than it's default size.
-
- * BUG FIX: The listview class did not refresh the list correctly when a
- single entry was added.
-
- * BUG FIX: Fixed the AddEntryVisible macro in bgui_macros.h.
-
- * BUG FIX: Fixed a couple of bugs in the string class. Bugs found by Paul
- weterings.
-
- * BUG FIX: The Toggle() and KeyToggle() macros from bgui_macros.h did not
- make it possible to set a toggle button selected by default. Note that
- these macros require an additional parameter now. Bug found by Paul
- Weterings.
-
- V37.14
- ======
-
- * BUG FIX: The online-help system of the gadget objects did not work at all.
-
- * BUG FIX: The drop-box frame used incorrect spacing when the
- FRF_THIN_FRAME flag was set. The radio-button frame totally ignored the
- FRF_THIN_FRAME flag. Bugs found by Paul Weterings.
-
- * Added the LISTV_TitleHook attribute to the listview class. This hook
- makes it possible to render a title entry in the listview object. Can
- come in handy with multi-column listviews.
-
- * Re-arranged and adjusted the source for DICE V3.0 commercial. Boy oh boy
- it really is picky about correct prototyping now...
-
- * The list class now uses the memory pool routines from the 3.1 amiga.lib.
- This means working memory pools even on 2.04.
-
- * BUG FIX: The group class did not always yield the correct results when
- requesting the minimum size of another group. This resulted in a
- wrong-sized mx object when it had a label attached to it.
-
- V37.15
- ======
-
- * Added task-relative information tracking. This means that from now on the
- library is a `SINGLE-TASK-LIBRARY'. If your code spawns a sub-task that
- requires the use of `BGUI' then this sub-task must open the library
- itself. It may not share the base pointer with the main-task.
-
- * Added the WINDOW_UniqueID attribute to give a window a unique ID of your
- choise. This ID is used by the task-relative information tracking to
- store the window size/position even when you dispose of the object and
- re-generate it.
-
- * Added the LVM_SORT method for re-sorting the entries in a listview
- object. Also added the SortList() macro in bgui_macros.h for this purpose.
-
- * Made the flag bits of the frameclass and labelclass also available as
- boolean tags. This allows for easier switching of single flags.
-
- * BUG FIX: The lvma_Entry field of the lvmAddSingle structure was defined
- as (APTR *) while it should be (APTR).
-
- V37.16
- ======
-
- * You can now reset the knob of a sliderclass or propclass object to it's
- initial setting by pressing the right mouse button before releasing the
- left-button.
-
- * Added the WINDOW_Window attribute to enable you to obtain a pointer to
- the window structure of a windowclass object.
-
- * Started keeping up with the source code revisions using the Revision
- Control System (RCS) supplied with DICE 3.0.
-
- V37.17
- ======
-
- * BUG FIX: The buttonclass now takes the design size of a vectorclass image
- into consideration when computing it's minimum size. Bug found by Wouter
- van Oortmersen.
-
- * BUG FIX: Fixed the rendering bug of objects on invisible pages. Bug found
- by Paul Weterings.
-
- * BUG_FIX: Fixed the enforcer hits of Infoclass objects in a Pageclass
- object. Bug found by Paul Weterings.
-
- * Added a XEN style button frame to the frame class. Also added some new
- macros to the bgui_macros header specially for this purpose.
-
- * Added XEN macros in the bgui_macros.h file for the checkbox and cycle
- objects.
-
- * Added the GROUP_BackFill attribute to supply a group backfill possibility
- without a group frame.
-
- * Added the BREQF_XEN_BUTTONS flag to supply the requester buttons with a
- XEN style frame.
-
- V37.18
- ======
-
- * BUG FIX: The infoclass sometimes screwed up with text-styles. I'm not
- sure if this was a bug in the infoclass itself but I have coded a
- work-around to the problem.
-
- * Optimized setting pens and drawmode in a rastport. Now the code checks
- the pens and drawmode to see if it needs to change. Should speed up the
- rendering somewhat.
-
- * BUG FIX: When flushing the library from memory while one or more of the
- classes failed to free could result in a GURU. This should not happen
- anymore.
-
- * Added the seperator class which adds the possibility to seperate groups
- with a single 3D line with or without a title. Also added a couple of
- macros to bgui_macros.h for this purpose.
-
- V37.19
- ======
-
- * BUG FIX: The stringclass by default used the wrong pens to render it's
- contents. Now the correct pens are used by default keeping track of user
- set pens.
-
- * Added some simple macros for NewMenu definitions in the bgui_macros.h
- header.
-
- * BUG FIX: Drag-selecting menus would result in replying a non-existant
- IntuiMsg (enforcer hits... GURUs... `ouch!')
-
- * BUG FIX: Fixed a bug that caused rendering object labels in the wrong
- color when the object was selected and the label was located outside the
- object hit area.
-
- * BUG FIX: The HorizSlider() macro was broken.
-
- * BUG_FIX: Some classes screwed up computing their minimum size when the
- label was located above or below the object. This should not happen
- anymore.
-
- * Extended the Listview class rendering hook result code. When the hook
- returns non-NULL the class will see this as a string and render it. A
- result code of NULL is ignored. Please read the LISTV_DisplayHook section
- of the listviewclass.doc file for more information on this subject.
-
- * Added hook-notification to the baseclass. Please refer to the
- baseclass.doc file for more information on this subject.
-
- * BUG FIX: Fixed a small bug in the tab-cycling code of the string class.
- The bug caused non-tabcycling gadgets to notify the event-handler when it
- was de-activated.
-
- * BUG FIX: The AddEntrySelect() macro was broken.
-
- * Added the LVM_LOCKLIST and LVM_UNLOCKLIST methods to the listview class.
- These methods should have been in there from the beginning to prevent
- strange results when somebody is fiddling with the listview while you are
- changing one of it's entries.
-
- * BUG FIX: While converting a text-editor I'm writing to `BGUI' I came
- accross a buch of small bugs bugs in `BGUI'. These (I shall not list
- them) should be fixed now.
-
- * BUG FIX: When using a shared window port for the `BGUI' windows it would
- happen that the event handler did not get the initial IDCMP_ACTIVEWINDOW
- message because the port is added to the window after it is opened. Now
- the code will manually activate the window when the WA_Active tag is TRUE
- after the port has been added.
-
- V37.20
- ======
-
- * Changed the behaviour of the WINDOW_UniqueID tag when the
- WINDOW_PosRelBox tag is also used. Please refer to the WINDOW_UniqueID
- section of the windowclass.doc file for more information.
-
- * Added some extra code to ensure that the window sizing-gadget size is
- computed correctly. This will ensure the correct operation with patches
- like SysIHack. One note about SysIHack... When using the PGA_NewLook
- feature SysIHack renderes the proportional gadget left&and up from the
- intended location and to big and it ignores the PGA_Borderless tag. I
- would report this to the author of SysIHack if only I knew who Mr. BOOPSI
- was :)
-
- * BUG FIX: The progress class now checks frame thickness before filling the
- indicator.
-
- * BUG FIX: Fixed the PACKPENS() macro in bgui_macros.h. Docs clearly state
- "packed as two WORDs into a longword" but as it seems it should be two
- bytes in a word? Am I wrong???
-
- * BUG FIX: After testing BGUI on another public screen with a BACKGROUNDPEN
- different from 0 it came to my attention that BGUI had some problems with
- this. Now all rendering should occure OK with a different BACKGROUNDPEN
- than 0. I have fixed the labelclass and vectorclass and added a
- backfill-hook (WA_BackFill) to the windowclass to fix these problems.
-
- * Added a pop-up menu option to the cycle class. Also added a couple of new
- macros to bgui_macros.h to support this new option. Suggested by Jim
- Cooper.
-
- * The infoclass does not clip the text anymore when it won't fit. Now it
- simply renders as much text as will fit in the area.
-
- * Removed the text class completely. It was not a necessary class since the
- infoclass can do the most important things that the text class could do.
- The info class even does a better job at it. This also means that I
- finally got rid of all rastport-clipping.
-
- * The complete GUI is rendered in a buffer bitmap so that it can be made
- visible in a single blit. This looks much smoother than rendering visible
- on-screen. If a buffer cannot be allocated the rendering occures
- on-screen.
-
- * BUG FIX: It was possible to size an empty group to 0x0 which lead to
- potentially dangerous situations. I have made all RectFill() that are
- performed safe which means that the rectangle specified is checked for
- wierd values.
-
- V37.21
- ======
-
- * Changed the imagery of the cycle gadget when it is in Popup mode. It is
- not the best of imagery but it works. If anybody has a better idea let me
- know.
-
- * BUG FIX: A window with an ID and positioned relative to a rectangle would
- be placed wrong if the window was to big for the used font. This does not
- happen anymore but windows which grow to big for the used font and have
- to use the fall-back font will not remember it's size.
-
- * BUG FIX: Fixed a big-fat-stupid-lame-bug in the external class. I failed
- to aply rule number one when writing a BOOPSI dispatcher by not using the
- __geta4 (__saveds) qualifier. Bug found by Paul Weterings.
-
- * BUG FIX: Using a frame and/or a label on the master-group caused the
- rendering of this frame and/or label to be overwritten. Bug found by Paul
- Weterings.
-
- * Changed Xen frame rendering so that you get "rounded" corners. Looks much
- better.
-
- * Made the LISTV_Top attribute gettable as it should have been al along.
-
- * BUG FIX: Some IDCMP bits where not accessable with an IDCMP hook. Should
- be fixed now.
-
- * Added the EXT_NoRebuild attribute to handle external gadgetclasses which
- are smart enough to handle a resize themselves. Suggested by Paul
- Weterings.
-
- * BUG FIX: The stringclass rendered through the active page when it's
- contents was changed. This also happened when the gadget was not located
- on the active page. Bug found by Paul Weterings.
-
- * Added a method to the groupclass to insert members at any place into an
- already existing group. Suggested by Paul Weterings.
-
- * The cycleclass notification (in popup mode) is now delayed until the menu
- window is closed. Suggested by Paul Weterings.
-
- * The pageclass now also renders the current page in a buffer before it is
- shown. Note that this is only true when the page to show is a group.
- Suggested by Paul Weterings.
-
- V37.22
- ======
-
- * BUG FIX: LISTV_MakeVisible and LISTV_Select did not make the item
- visible. Bug found by Paul Weterings.
-
- * Added a couple of macros to create non-fixed size checkbox objects.
- Suggested by Paul Weterings.
-
- * Made the WINDOW_Screen and WINDOW_PubScreenName settable when the window
- is closed. Suggested by Paul Weterings.
-
- * BUG FIX: The Popup menu of a Popup-Cycle object would not open on the
- correct screen when the window in which it resided was not located on the
- default public screen. Bug found by Paul Weterings.
-
- * BUG FIX: Erasing the title area of a seperatorclass object did not yield
- the desired result when the area-pattern of the rastport was not cleared.
-
- * BUG FIX: After running tests with memoration it came to my attention that
- the re-size oprations where not working properly if the buffer rastport
- could not be allocated.
-
- V37.23
- ======
-
- * Enhanced listview class scrolling a bit. The old routines had a lot of
- overhead because they simple re-rendered the complete list even if the
- top only changed one or two places.
-
- * Switching pages in a pageclass object looks smoother now.
-
- * Most small allocations are now made in memory pools instead of allocating
- them directly from the system memory pool.
-
- * Changed the operation of the WINDOW_SigMask, WINDOW_AppMask and
- COMM_SigMask attributes. Instead of OR'ing the mask value to the storage
- field the mask value is set now.
-
- * Added the WINDOW_Bounds attribute which can be used to open a window at
- the place and width the size that you want. Suggested by Paul Weterings.
-
- * Initial Public Beta Release... (30.09.94)
-
- V37.24
- ======
-
- * Added the BT_HelpText and WINDOW_HelpText attributes to pop a requester
- with a help text instead of having to use AmigaGuide. for small help.
- This also results in a new BGUI catalog (version 2).
-
- * BUG FIX: BGUI did not recognize language changes. Now each time BGUI
- needs to access localized strings the catalog is refreshed before
- actually accessing the strings. This results in the strings always being
- in the preferred language.
-
- * Added the GROUP_EqualWidth and GROUP_EqualHeight attributes to make the
- members of a group all have the same minimum width and or height.
-
- * Made the WINDOW_Bounds attribute settable with OM_SET. You can set it
- when the window is closed or opened. Suggested by Paul Weterings.
-
- * Initial Public Release (09.10.94)
-
- V37.25
- ======
-
- * BUG FIX: Most of the macros in the Amiga E support that called uppon
- BGUI_DoGadgetMethodA() were broken. Major screwup from my side. Sorry...
-
- * Made the GA_Disabled tag settable with OM_SET/OM_UPDATE on groupclass
- objects. When set on a groupclass object all members in the group will be
- disabled/enabled. Suggested by Paul Weterings.
-
- * BUG FIX: The mxclass can now be controlled by the keyboard. Keyboard
- control of this class is style guide compliant.
-
- * BUG FIX: Sometimes the key message handler of the windowclass could leave
- a message pending which could result in repeated keys not functioning
- anymore. Should be fixed now.
-
- * BUG FIX: Manually setting LISTV_Top with OM_SET or OM_UPDATE did not move
- the scroller along with the list.
-
- * Increased the minimum height of a listview class object.
-
- * The initial public release lacked the presence of the clib/bgui_protos.h
- file. Sorry about that.
-
- * BUG FIX: The MsgInfo in bgui_macros.[p]ma of the Amiga E support was
- broken.
-
- * BUG FIX: For some strange reason the OS 2.04 propgclass seems to fiddle
- with the font in the RastPort. This caused the adding of entries in a
- listview object to give strange results when the system font and screen
- font differed. Should be fixed now. Bug found by Michael Barsoom.
-
- * Added the PAGE_NoBufferRP and WINDOW_NoBufferRP attributes. This will
- alow you to have rendering happen on-screen.
-
- * Release 1.1b. Public bug-fix update #1.
-
- V38.1
- =====
-
- * Enhanced adding a single entry visibly to a listview object. This used to
- cause a complete list refresh with every added item. Now only the added
- entry and the prop are refreshed.
-
- * Seperators are rendered slightly different now. Suggested by Magnus
- Holmgren.
-
- * Added the LISTV_LastClickedNum attribute which can be used to query the
- ordinal number of the last selected entry of a listview object.
-
- * Added the WM_REPORT_ID method to the windowclass. This method can be used
- to set return codes from a IDCMP-hook or Verify-hook. The ID's are
- stacked internally and the next time the windowclass IDCMP handler is
- called returned to the application one by one.
-
- * Made the VIT_VectorArray and VIT_BuiltIn attributes settable on a
- buttonclass object. Suggested by Paul Weterings.
-
- * BUG FIX: Setting both the GA_Disabled and CYC_Active tag on a cycle class
- object would not change the label visibly.
-
- * Added the LGO_NoAlign layout attribute to the groupclass which forces the
- layout engine not to align the object it's hitbox with the others.
- Suggested by Florian Vorberger.
-
- * Now NULL may be passed with the STRINGA_TextVal attribute to the
- stringclass. Normally the system stringclass does not allow this.
-
- * Added the some magic numbers to the LISTV_Select attribute. Suggested by
- Michael Barsoom.
-
- * The alignment of the hitboxes in a vertical group sometimes made the
- total width of the group to large. Should not happen anymore. Bug found
- by Florian Vorberger.
-
- * Added the LVM_MOVE method and LISTV_NewPosition attribute for moving
- entries in a listview object.
-
- * Added the LISTV_NumEntries attribute for getting the number of entries in
- a listview object.
-
- * Added the LISTV_Select_Page_Up and LISTV_Select_Page_Down magic numbers.
-
- * Enhanced the indicatorclass minimum size calculations. The old routine
- was 100% precise but took ages to complete with a large difference
- between min & max. It now "guesses" the correct minimum size but is
- `much' faster. Reported by several people.
-
- * Added keyboard shortcuts for BGUI_RequestA().
-
- * Added the BUTTON_Image and BUTTON_Selected image tags to the buttonclass
- which may be used to add Intuition or BOOPSI imagery to a button object.
-
- * Optimized some stuff internally which saved a couple of bytes of the
- library. Still under the 100000 bytes ;)
-
- * Added the WINDOW_AutoAspect attribute and BREQF_AUTO_ASPECT flag to let
- the windowclass decide wether the objects use thick or thin framing.
- Suggested by Paul Weterings. Passed the 100000 bytes :(
-
- * From now on infoclass command sequences are valid for listviewclass text
- entries. Also returned strings from a LISTV_DisplayHook may contain
- infoclass command sequences.
-
- * The format string specified with the INFO_TextFormat and
- INDIC_FormatString attributes may now contain locale.library
- FormatString() formatting (%) codes. Please note that locale specific
- formatting codes will only work when the locale.library is available.
-
- * Added a screen field to the bguiRequest structure.
-
- * Added a Tabber mode for the mxclass. This mode will give you a Tabs-like
- object which can be used to select pages from a pageclass object.
-
- * Release 1.1b. Second Public Release.
-
- V38.2
- =====
-
- * Shifted numerical gadget keys did not work. Should be fixed now. Bug
- found by Florian Vorberger.
-
- * Added the LISTV_MinEntriesShown attribute which can be used to determine
- the number of entries that should be visible at all times. Suggested by
- Stan Burton.
-
- * BUG FIX: Setting the CYC_Active attribute on a cycleclass object when it
- was not in a window would erase the old label but not set the new one.
- Bug found by Florian Vorberger.
-
- * BUG FIX: AmigaGuide help did not open on the correct screen if the window
- was not located on the default public screen. Bug found by Zachary A.
- Forsyth.
-
- * BUG FIX: Controlling a Mx object in tabs mode would not cycle through
- when it reached the end or the beginning like it was supposed to. Also
- key-activation of an mx object did not generate an event. Bugs found by
- Johan Eliasson.
-
- * BUG FIX: Fixed a rendering bug in the stringclass and one in the cycle
- class.
-
- * BUG FIX: Sometimes a string object could be resized to small. Bug found
- by Stan Burton.
-
- * BUG FIX: Changing the text or arguments of a frameless infoclass object
- would result in overwriting the old text instead of replacing it. Bug
- found by several people.
-
- * BUG FIX: Again some macros from the E support where broker. Jeezz, maybe
- I should have tested them all.
-
- * Released as bug-fix patch on the mailinglist.
-
- V38.3
- =====
-
- * Changed the Amiga E support to require at least version 3.1a of the Amiga
- E compiler.
-
- * BUG FIX: Tab-cycling should work through pages now. Simply add all
- string objects with WM_TABCYCLE_ODER and you're done. Reported by Patrick
- (poseidon@newswire.gun.d).
-
- * BUG FIX: The groupclass could compute the minimum size incorrect. Should
- be fixed now. Reported by Florian Vorberger.
-
- * BUG FIX: The internal memory allocator screwed up by releasing 4 bytes
- short of the original allocator. Also the initializing the localization
- gave mungwall hits. Bugs found by Magne Oestlyngen.
-
- * BUG FIX: The listview class became as slow as a C= 64 diskdrive when
- scrolling it at the end of a large amount of entries. This should not
- happen anymore. Bug found by Johan Eliasson.
-
- * Enhanced adding single entries to a listview. Adding with LVAP_TAIL or
- LVAP_HEAD should be considerably faster now.
-
- * BUG FIX: The last enhancement could cause problems when adding the first
- item. Fixed.
-
- * BUG FIX: The layout engine did not read all tags when there where tags
- specified after adding the members.
-
- * Added the PAGE_Inverted and GROUP_Inverted tags. These tags are
- implemented to serve the assembly macro package.
-
- * Totally re-written the assembly header bgui_macros.i. Now it works. Added
- a small demonstration in the Demo drawer which shows the usage of the
- bgui.library in assembler. Paul Hamer put me up to this.
-
- * BUG FIX: Disabling and enabling a checkbox object ar any object with a
- EdgesOnly frame should not be a problem anymore. Bug found by several
- people.
-
- * BUG FIX: Again AmigaGuide help did not pop up on the right screen. I
- fixed for the help attached to the gadget objects but help attached to a
- window still had this problem. Bug found by Zachary A. Forsyth.
-
- * BUG FIX: Opening the library twice in the same task and closing it once
- would result in a crash when using BGUI after the single close. Bug found
- by Janna Jalkanen.
-
- * BUG FIX: A PROGRESS_Max equal to PROGRESS_Min would result in a crash.
- Bug found by Florian Vorberger.
-
- * BUG FIX: Newlines in the arguments of a BGUI_RequestA() requester
- resulted in an incorrectly sized requester. Bug found by Janne Jalkanen.
-
- * Public bug-fix update #2.
-
- V38.4
- =====
-
- * BUG FIX: The way the localization was handler could dereference invalid
- memory pointers.
-
- * BUG FIX: Renamed the "Label" macro from the assembly support to "xLabel"
- to avoid clashes with the exec/types.i "LABEL" macro. Also the
- "WindowClose" macro has been renamed to "xWindowOpen".
-
- Future
- ******
-
- This is a list of known bugs and quirks. Please read this before you start
- sending me bug reports and suggestions.
-
- `BUG' = A bug that is still present.
- `SUG' = A suggestion which might be implemented in the future.
- `REV' = Revision and/or fine-tuning that still needs to be done.
- `MAY' = Maybe...
-
- * `BUG' - The layout engine locks up when, due to a bug or hacking, you
- re-size a window smaller than it's minimum as decided by BGUI. Reported
- by Florian Vorberger.
-
- * `BUG' - The infoclass screws up computing it's minimum dimensions when
- the last thing in the text is a command sequence. Should not be a real
- problem since it is bullshit to end a string with a command sequence.
-
- * `SUG' - Add a method to the listview class that enables the programmer to
- manipulate single entries in whichever way necessary. Suggested by Magne
- Oestlyngen.
-
- * `SUG' - A Palette selector class. External? Suggested by Paul Weterings.
-
- * `REV' - `BGUI' gadgets on intuition requesters is `NOT' supported yet.
-
- * `REV' - The commodity class could use some cleaning up. I'm not really
- satisfied with it as it is.
-
- * `REV' - The format of the library and class documentation files suck. I
- should convert them to "real" autodoc format or amigaguide files.
-
- * `REV' - Error reporting. It's OK that a window failed to open or an
- object failed to create but it would be nice to know why. Both numeric
- and textual error descriptions should be made available.
-
- * `REV' - Adding method, conditional and hook notification to the window
- class to. This will allow notification to happen on the application task
- instead of the input.device task.
-
- * `REV' - Adding a method to the listview class to move entries up&down in
- the list.
-
- * `REV' - Work on the menus. For now it is not possible to dynamically add
- items, add notification or help files to the menus. This really sucks.
-
- * `REV' - Try to cut down on the code size. Although, all things
- considering, BGUI is not excessive in size I'de like to see it smaller.
-
- * `MAY' - Letting the window backfill hook optionally make use of the
- preferred workbench window backfill pattern or picture.
-
- * `MAY' - Fonts and images in the info class.
-
- * `MAY' - Add a posibility to "snapshot" window sizes to disk. Should this
- be up to the application programmer? Suggested by Paul Weterings.
-
- * `MAY' - Take the layout engine of BGUI and make a seperate shared/link
- library out of it. This would result in a +/- 10 KByte shared/link
- library with the same functionality as the BGUI layout engine. Maybe this
- will satisfy those people who are always bitching and complaining about
- GUI engine libraries.
-
- Thanks To
- *********
-
- The author would like to extend a big thank you to the following people for
- their valuable help:
-
- Bjorn Reese, Jim Cooper, Jim Karczewski, Keith Christopher, Michael
- Wiedmer, Michiel Willems, Magne Oestlyngen, Magnus Enarsson, Martin Bischoff,
- Parrish Heywood, Patrick van Beem, Paul Hill, Paul McLachlan, Paul Weterings,
- Per Harald Myrvang, Ranulf Doswell, Zachary A Forsyth.
-
- And the people I may have forgotten...
-
- Thanks should also go to:
-
- * All the folks at `O.I.C'. Obvious Implementations Corporation. This
- software is completely developed using DICE in the registered version and
- later on the commercial version.
-
- * Francesco Devitt for MemLeak. A remarkable simple but very useful tool ;)
-
- * Reinhard Spisser and Sebastiano Vigna for their wonderful Makeinfo which
- was used to generate this AmigaGuide./ASCII documentation.
-
- * Bryce Nesbitt and Michael Sinz for Enforcer. The best bug-hunter for the
- Amiga.
-
- Index
- *****
-
- * Menu:
-
- * Disclaimer: Disclaimer.
- * Features: Features.
- * Future: Future.
- * History: History.
- * Installation: Installation.
- * Introduction: Introduction.
- * Keyboard & Mouse: Keyboard & Mouse.
- * License: License.
- * Preface: Preface.
- * Read Me: Read Me.
- * Requirements: Requirements.
- * Thanks To: Thanks To.
- * V37.11: V37.11.
- * V37.12: V37.12.
- * V37.13: V37.13.
- * V37.14: V37.14.
- * V37.15: V37.15.
- * V37.16: V37.16.
- * V37.17: V37.17.
- * V37.18: V37.18.
- * V37.19: V37.19.
- * V37.20: V37.20.
- * V37.21: V37.21.
- * V37.22: V37.22.
- * V37.23: V37.23.
- * V37.24: V37.24.
- * V37.25: V37.25.
- * V38.1: V38.1.
- * V38.2: V38.2.
- * V38.3: V38.3.
- * V38.4: V38.4.
-
-